package com.yituo.mjworld.mvc.action;

import com.yituo.mjworld.core.annotation.Auth;
import com.yituo.mjworld.core.annotation.Check;
import com.yituo.mjworld.core.web.core.MyHttpRequest;
import com.yituo.mjworld.core.web.core.MyHttpResponse;
import com.yituo.mjworld.mvc.form.DeleteForm;
import com.yituo.mjworld.mvc.form.QueryForm;

import java.io.IOException;
import java.lang.reflect.InvocationTargetException;

/**
 * 接口:基础Action
 */
public interface IBaseAction {
  /**
   * 获取列表
   * <p>
   * 参数检查使用查询表单
   *
   * @param req
   * @param res
   * @throws IOException
   */
  public void getList(MyHttpRequest req, MyHttpResponse res) throws IOException;

  /**
   * 删除某行
   * <p>
   * 参数检查使用删除表单
   *
   * @param req
   * @param res
   * @throws IOException
   */
  public void delete(MyHttpRequest req, MyHttpResponse res) throws IOException;

  /**
   * 保存或者更新
   * <p>
   * 参数检查依赖于程序员手动指定
   *
   * @param req
   * @param res
   * @throws IOException
   */
  public void saveOrUpdate(MyHttpRequest req, MyHttpResponse res) throws IOException, InvocationTargetException, IllegalAccessException;
}
